home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 033a / wwiv420.zip / WWIVMODM.DOC < prev    next >
Text File  |  1991-07-10  |  25KB  |  530 lines

  1.                    WWIV v4 Modem Documentation
  2.               Copyright (c) 1988-1991 by Wayne Bell
  3.  
  4.  
  5.  
  6. Because so many people have problems with their modems, and having the
  7. BBS use them, I am writing a separate .DOC file to attempt to better
  8. describe modems, and how they need to be configured in order to run
  9. optimally with WWIV.  Additionally, this describes how WWIV v4.20
  10. handles the modem, and how to add support for additional modem types.
  11.  
  12. The first thing you need to be aware of is that just about every modem
  13. manufactured for the IBM claims to be "100% Hayes compatible."  This
  14. doesn't actually mean that it is 100% compatible, but only that it is
  15. relatively close (would you buy a modem that is advertised as 99%
  16. compatible?).  With 9600 and faster modems, Hayes compatibility means
  17. very little.  Each modem handles high speed differently, and special
  18. support may be needed for each brand modem.
  19.  
  20. For external modems, one important feature is your modem cable. In order
  21. to work correctly with WWIV, the following pins need to be connected
  22. from the modem to the computer (all are pin numbers on the DB-25
  23. connected to the modem): 2,3,7,8,20.  If any of these are not connected,
  24. the modem probably won't work correctly, so you'll need a new modem
  25. cable. Fortunately, just about all straight serial cables manufactured
  26. correctly connect these pins.  If your modem cable has sealed connectors
  27. on the ends, don't tear it apart; it is probably fine.  However, If you
  28. made up your own cable (or had someone else make you up one), you might
  29. want to check it out.
  30.  
  31. For both external and internal modems, the first important setting you
  32. need to have on your modem is the carrier detect.  Most modems have two
  33. settings for carrier detect (or CD).  Either CD is ALWAYS ON, or CD
  34. tracks the state of the carrier.  Using the second setting, WWIV is
  35. correctly able to tell if a remote caller is connected by checking the
  36. CD lead.  But, for some damned fool reason, most modem manufacturers set
  37. it to default to the always on state.
  38.  
  39. On some modems, there will be a physical switch that you will need to
  40. check (and probably change).  On some modems (such as Hayes external),
  41. you'll need to pop off the face-plate and use a pencil or something to
  42. flip the DIP switch.  Other external modems may have the DIP switches
  43. located on the back panel.  So, pull out your modem manual, and check
  44. which switch affects the CD or DCD lead, and have it set so that it
  45. ISN'T ALWAYS ON.  Internal modems that have DIP switches place the
  46. switches on the modem card.
  47.  
  48. With some modems, there are "logical" (changed via the keyboard)
  49. switches that determine the CD status.  The keyboard command for the
  50. Prometheus 2400G, for example, is &C1.  The WWIV modem configurations
  51. default to &C1 for all 2400 or faster modems.
  52.  
  53. The second important setting is the data terminal ready line (DTR),
  54. which is like the CD lead.  The DTR lead is what WWIV uses to send a
  55. 'hang up' command to the modem.  Usually, the DTR lead is ON until WWIV
  56. turns the DTR lead OFF, at which time the modem should hang up.  Most
  57. modems can be set so that the modem will completely ignore the DTR
  58. status.  Also, by some quirk in the Universe, it is also usually set by
  59. the manufacturer to ignore DTR status instead of correctly looking at
  60. it.
  61.  
  62. So, if you have physical switches on your modem, whip out your manual
  63. again, and find which switch you need to check so that the modem will
  64. hang up when DTR is dropped.
  65.  
  66. For the modems without physical switches, you need to find the command
  67. for that setting.  For the 2400G, the correct command is &D2, which is
  68. described as, "Modem goes on-hook, assumes command state and disable
  69. auto-answer with ON-to-OFF transition."  Fortunately, (again), the WWIV
  70. modem configurations default to setting &D2 for all 2400 or faster
  71. modems.
  72.  
  73. Contained in the WWIV software ZIP file is a file named MODEMS.MDM.
  74. This file contains setups (or configurations) for most modems.  The .MDM
  75. file is what INIT reads to create a modem data file, which is what the
  76. BBS uses.  If none of the standard configurations in the MODEMS.MDM seem
  77. to work for your speed/ make/type modem, you have several options:
  78.  
  79. 1.  You can 'tweak' an existing configuration in the MODEMS.MDM file
  80.  
  81. 2.  You can build your own configuration and add it to the end of the
  82.     MODEMS.MDM file
  83.  
  84. 3.  You can create your own .MDM file (file name can be named any legal DOS
  85.     file name, but MUST have the .MDM extension
  86.  
  87. 4.  Write me for help
  88.  
  89. Modem configurations are placed in the BBS data directory, and the data
  90. itself is stored in text format (for easy editing with any ASCII
  91. editor). Only the file MODEMS.MDM can contain more than one
  92. configuration.  Any other *.MDM file can contain only one configuration,
  93. and does not require a "FILE:" line, as the file name (before the .MDM)
  94. is the name.  Don't worry, that will be explained later. Also, the
  95. MODEMS.MDM file is the only file that can contain auto-selection lines.
  96.  
  97. Described below are examples of the above options.  Additional
  98. information can be also be found in the WWIVINIT.DOC file.
  99.  
  100. WWIV defaults to the optimal setup for most non-MNP 300, 1200 and 2400
  101. baud modems.  These are the "H0300", "H1200" and "H2400" configurations,
  102. which are described below.  Some modems are a bit slow to respond after
  103. they send the RING result code, and do not properly answer the phone
  104. when it rings (despite WWIV saying that it has answered the phone).  If
  105. the BBS does not answer the phone when it should, try one of the "S"
  106. configurations - "H1200S" or"H2400S". This should take care of the
  107. problem.  The only difference between the "S" configurations and the
  108. normal ones is that the "S" configurations have a different ANSR:
  109. string, which as a "~" (tilde) at the beginning.  The tilde causes about
  110. an 0.5 second delay, giving the modem some time before the "ATA" is
  111. sent.  If this still doesn't work, try editing the appropriate
  112. configuration file, and adding an additional tilde on the beginning.
  113.  
  114. If one of the 300, 1200 or 2400 configurations does not work for your
  115. modem, you have two choices: 1) read about the WWIV modem configuration
  116. file, located below, and modify (tweak) the appropriate section to get
  117. it to work, or 2) contact me via one of the methods in the 'READ.ME'
  118. file, and see if I can get it to work for you (or if I already have an
  119. updated configuration file that supports your modem).  If you have a
  120. good understanding of how modems work, I'd suggest trying to figure it
  121. out on your own first.
  122.  
  123. In any case, if you have to modify a part of the default configuration
  124. file to get your modem to work, please send the updated configuration
  125. section (be sure to update the modem name and description also) to me,
  126. so that I may include that configuration in future releases of WWIV.
  127. This will help other sysops who purchase the same model modem.
  128.  
  129. Some MNP and 9600+ modems require special configuration.  Fortunately,
  130. most of the high-speed modems on BBS's (that I know of) are USRobotics
  131. modems, and WWIV already knows how to handle the USRobotics high-speed
  132. modems.
  133.  
  134. If WWIV does not currently support the type of high-speed modem that you
  135. have, you can try building your own configuration section for it.
  136. However, unless you are VERY familiar with how the modem works, I'd
  137. suggest not trying that.  Even if you are able to use your high-speed
  138. modem perfectly with your terminal program, the same configuration will
  139. NOT work for the BBS.  The reason is, in the terminal program, you (the
  140. user) are sitting there, and are able to interpret the result codes and
  141. fix things if problems occur.  There is nobody around to help a BBS if
  142. it gets confused.  Also, the BBS needs very specific information on the
  143. modem (including flow control, buffering, baud rates, result codes,
  144. etc.) in order to work properly for the variety of callers and modems
  145. that connect with it.
  146.  
  147. If you are unable to get your own configuration to work (or don't want
  148. to try), you'll pretty much have to contact me directly.  Unless you are
  149. trying this during the first few weeks after the release of v4.20, there
  150. is a good chance I will already have the configuration file for your
  151. modem, and can forward it (e-mail) it to you.  When contacting me, BE
  152. SURE to include as much information about your modem as possible.
  153. Telling me only that it's supposed to be a Hayes compatible modem just
  154. won't do it.  I need manufacturer, model number, maximum speed and what
  155. the modem returns when you enter 'AT'<enter> and 'AT0'<enter> when in a
  156. terminal program.
  157.  
  158. If I find I DON'T already have a configuration file for it, then I will
  159. need a fair amount of information on the modem to get it to work.  In
  160. all likelihood, if you call up technical support for your modem
  161. manufacturer, and ask them to send me (a developer) a copy of the
  162. manual, they probably won't mind.  With a manual, I can probably work it
  163. out from there (at no cost to you).  If you send me YOUR copy of the
  164. manual, don't expect me to mail it back.  I just don't have the time to
  165. be running to the post office every few days.
  166.  
  167. If you have a modem type that is not currently supported, I REALLY WOULD
  168. like to get a configuration setup for that modem and support it in WWIV.
  169. Please do not think that I am unwilling to support all types of modems.
  170. I do want to support them, and will put in the time necessary to get
  171. your modem working. But remember: I will need quite a bit of info on
  172. your modem type.
  173.  
  174.  
  175. /****************************************************************************/
  176.  
  177. Now, more about the WWIV modem configuration file.
  178.  
  179.  
  180. Creating a new section of the modem configuration file does not require
  181. any programming knowledge; it only requires in-depth, intimate knowledge
  182. of how the modem works.  I would not suggest that anyone try to set up
  183. their own modem configuration section from scratch; rather, take one of
  184. the existing configurations, and tweak it as necessary.
  185.  
  186. Modem configurations are stored in text format (for easy editing with
  187. any ASCII editor), in *.mdm files in the data directory.  The file
  188. 'modems.mdm' contains the default configurations (multiple
  189. configurations).  Any other *.mdm file can contain only one
  190. configuration, and does not require a "FILE:" line, as the file name
  191. (before the .mdm) is the name.  Don't worry, that'll be explained later.
  192. Also, the 'modems.mdm' file is the only file that can contain
  193. auto-selection lines.
  194.  
  195. Let's start out with a sample configuration (for a 2400 baud modem), and
  196. explain the various parts of it (this configuration is from the
  197. MODEMS.MDM file).
  198.  
  199.  
  200. ##############################################################################
  201. #
  202. # Hayes compatible 2400 baud modems.
  203. #
  204.  
  205. FILE: "H2400"
  206. NAME: "Hayes compatible 2400"
  207. NOTE: "If the BBS doesnt answer the phone, try the H2400S configuration."
  208. SETU: "AT&C1&D2Q0V1{"
  209. INIT: "ATC1E0F1H0M0Q0V1X4S0=0S2=1{"
  210. ANSR: "ATA{"
  211. PICK: "ATH1{"
  212. HANG: "ATH0{"
  213. DIAL: "ATDT"
  214. SEPR: ""
  215. DEFL: MS=2400 CS=2400 EC=N DC=N AS=N FC=N
  216. RESL: "OK"              "Normal"        NORM
  217. RESL: "RING"            "Ring"          RING
  218. RESL: "NO CARRIER"      "No Carrier"    DIS
  219. RESL: "ERROR"           "Error"         ERR
  220. RESL: "NO DIAL TONE"    "No Dial Tone"  NDT
  221. RESL: "NO DIALTONE"     "No Dial Tone"  NDT
  222. RESL: "BUSY"            "Busy"          DIS
  223. RESL: "NO ANSWER"       "No Answer"     DIS
  224. RESL: "RINGING"         "Ringing"       RINGING
  225. RESL: "VOICE"           "Voice"         DIS
  226. RESL: "CONNECT"         "300"           MS=300   CS=300   CON
  227. RESL: "CONNECT 1200"    "1200"          MS=1200  CS=1200  CON
  228. RESL: "CONNECT 2400"    "2400"          MS=2400  CS=2400  CON
  229.  
  230.  
  231. As you can see, the modem configuration is made-up of three groups:
  232. The STRING lines (FILE, NAME, NOTE, SETU, INIT, ANSR, PICK, HANG, DIAL,
  233. SEPR), the DEFAULT SETTINGS (DEFL), and the RESULT CODE lines (RESL).
  234.  
  235. The "FILE" line gives the "file name" of the configuration.  If you took
  236. the configuration above (minus the FILE: line), copied it from the
  237. modems.mdm file, and put it in a "H2400.MDM" file in the data directory,
  238. everything would work exactly the same.  The "FILE" entry just allows
  239. you to put multiple configurations into the 'modems.mdm' file, and not
  240. clutter up your data directory with lots of *.mdm files that you don't
  241. need.
  242.  
  243. Each of the strings allows control characters and delays to be
  244. specified.  A "{" is converted to a carriage-return.  A "~" is converted
  245. into an 0.5 second delay.  Any string such as "^J" is converted into the
  246. specified control character (here, control-J, or a linefeed).  Any
  247. string such as "\^" or "\~" quotes the character after it, allowing you
  248. to put a ^ or a ~ into the string.  Also, each string is terminated by
  249. either a single or double quote.  If you need to actually have a ' or "
  250. in the string, you will need to 'quote' the quote, as in \' or \".
  251.  
  252. "NAME:" gives a textual name/description of the modem, which is
  253. displayed in INIT section 5, along with the file name, which is used to
  254. help select the correct configuration.
  255.  
  256. "NOTE:" A note that is printed out for the user when the specific modem
  257. configuration is selected, giving any caveats for the configuration.
  258. Multiple NOTE: lines may be specified, however you will need to end each
  259. line with "^M^J" (carriage-return/line-feed), so it looks nice for the
  260. user.
  261.  
  262. "SETU:" gives the setup string for the modem.  This string is sent out
  263. once each time the BBS is loaded and run.
  264.  
  265. "INIT:" gives the initialization string for the modem.  This is sent out
  266. to the modem when the BBS is first run (but after the SETUp string), and
  267. after each caller hangs up.
  268.  
  269. "ANSR:" gives the string sent to the modem to tell it to answer the
  270. phone (such as after the RING result code is received).
  271.  
  272. "PICK:" gives the string to pick up the modem (take the phone off-hook),
  273. to prevent users from calling and getting a ring (thus thinking the BBS
  274. is down).
  275.  
  276. "HANG:" gives the string t hang up the phone (after the PICK string is
  277. sent).
  278.  
  279. I believe every modem in the world will probably use the same strings
  280. for ANSR, PICK, and HANG.  (Except, some modems (as noted earlier) are
  281. slow, and need the answer string to be "~ATA{" (pause 1/2 second before
  282. sending the answer string).
  283.  
  284. "DIAL:" gives the dial prefix.  If your phone line does not support
  285. tones, then changing it to "ATDP" will use pulse dialing.  Putting
  286. "ATB1DT" will cause a USR Dual Standard to dial out with the HST
  287. protocol (instead of V.32, since "B0" is in the init string).
  288.  
  289. "SEPR:" gives separation characters for the result codes.  This will be
  290. discussed later, under the high-speed modem section.
  291.  
  292. "DEFL:" gives the default modem setup.  It gives, essentially, modem
  293. result configuration info.
  294.  
  295. "RESL:" gives modem result code info.  There are two strings, then the
  296. result configuration info.
  297.  
  298. The first string is the actual "result code" received from the modem.
  299. Here, verbose result codes are used.  (All result codes are converted to
  300. uppercase).
  301.  
  302. The second string is the description of the result code, presented to
  303. the user.
  304.  
  305. The result configuration info gives information describing the modem
  306. result code.  The possible strings in this area are:
  307.  
  308. NORM          normal state of modem
  309. RING          phone is ringing
  310. RINGING       remote phone is ringing
  311. ERR           error encountered
  312. DIS           disconnected (No connection)
  313. NDT           no dial tone (same as DIS)
  314. CON           connection established
  315. MS=           modem speed
  316. CS=           com port speed
  317. AS=           asymmetrical baud rates (Y/N)
  318. EC=           error correcting (Y/N)
  319. DC=           data compression (Y/N)
  320. FC=           flow control (Y/N)
  321.  
  322. For 2400 or slower modems, you'll pretty much just have "MS=2400 CS=2400
  323. CON" (or whatever the baud rate is).  The other flags are used for
  324. high-speed modems.
  325.  
  326. So, how do you modify this information?  You pretty much take it as-is,
  327. and modify it.  Say your modem had a result code indicating connection
  328. at 600 baud.  You'd then just add a line saying:
  329.  
  330. RESL: "CONNECT 600"     "600"           MS=600   CS=600   CON
  331.  
  332. And that would be it.  If you needed additional initialization strings
  333. sent to the modem, then you'd just add that into either the setup or
  334. init strings (depending on if you needed it sent only once, or for each
  335. caller).  Beware, though: Most modems only have a 40 character buffer,
  336. so if you make the strings too long, it might not work.
  337.  
  338.  
  339. Thus, modifying a 2400 or lower modem configuration should be fairly
  340. simple (if you know what you need it to do).  9600's, however, are much
  341. more complicated.
  342.  
  343. If/when you need to modify a modem configuration, you should first take
  344. the configuration you are starting with, and copy it out of the
  345. 'modems.mdm' file into a separate file.  If, say, you need to tweak the
  346. H2400 configuration for your Prometheus modem, you'd copy the H2400
  347. configuration (minus the FILE: "H2400") into a file, say, "PROMETH.MDM"
  348. in your data directory.  Then you'd modify the NAME: and NOTE: lines for
  349. the new modem type.  Then, when you're done, you can easily distribute
  350. the new configuration (as the file PROMETH.MDM) to other people who
  351. might need it (and also send a copy back to me, so I can include it in
  352. future versions of the modems.mdm file).
  353.  
  354. /****************************************************************************/
  355.  
  356. The configuration for the latest USRobotics high-speed modems is:
  357.  
  358.  
  359. ##############################################################################
  360. #
  361. # Newest version of USR HST/V.32bis/DS modems
  362. #
  363. # This really returns the optimal information.
  364. #
  365.  
  366. FILE: "USRC31"
  367. NAME: "USR Courier (Newest, With rectangular LEDs/V.32bis)"
  368. CONF: "ATZ{~~~~~~~AT{~~AT&W{"
  369. SETU: "ATC1E0F1H0M0Q0V1X6&A3&B2&C1&D2{~~AT&H1&I0&K2&N0&R2&S0S0=0S2=1{"
  370. INIT: "ATB0H0M0{"
  371. ANSR: "ATA{"
  372. PICK: "ATH1{"
  373. HANG: "ATH0{"
  374. DIAL: "ATB1DT"
  375. SEPR: "/"
  376. DEFL: MS=38400 CS=38400 EC=N DC=N AS=N FC=Y
  377. RESL: "OK"              "Normal"        NORM
  378. RESL: "RING"            "Ring"          RING
  379. RESL: "NO CARRIER"      "No Carrier"    DIS
  380. RESL: "ERROR"           "Error"         ERR
  381. RESL: "NO DIAL TONE"    "No Dial Tone"  NDT
  382. RESL: "BUSY"            "Busy"          DIS
  383. RESL: "NO ANSWER"       "No Answer"     DIS
  384. RESL: "RINGING"         "Ringing"       RINGING
  385. RESL: "VOICE"           "Voice"         DIS
  386. RESL: "CONNECT"         "300"           MS=300   CS=300   CON
  387. RESL: "CONNECT 1200"    "1200"          MS=1200  CS=1200  CON
  388. RESL: "CONNECT 2400"    "2400"          MS=2400  CS=2400  CON
  389. RESL: "CONNECT 4800"    "4800"          MS=4800  CS=4800  CON
  390. RESL: "CONNECT 7200"    "7200"          MS=7200  CS=7200  CON
  391. RESL: "CONNECT 9600"    "9600"          MS=9600  CS=9600  CON
  392. RESL: "CONNECT 12000"   "12000"         MS=12000 CS=12000 CON
  393. RESL: "CONNECT 14400"   "14400"         MS=14400 CS=14400 CON
  394. RESL: "ARQ"                             EC=Y     CS=38400
  395. RESL: "HST"             '/HST'          AS=Y
  396. RESL: "V32"             '/V.32'         AS=N
  397. RESL: "MNP"             '/MNP'          EC=Y
  398. RESL: "LAPM"            '/LAPM'         EC=Y
  399. RESL: "MNP5"            '/MNP5'         DC=Y
  400. RESL: "V42BIS"          '/V.42bis'      DC=Y
  401. RESL: "NONE"                            EC=N
  402. RESL: "SYNC"
  403.  
  404. As you can see, much of it is the same.
  405.  
  406. One of the differences is that the setup string is divided into two
  407. portions, to get around the (stupid) 40 character buffer in the modem.
  408.  
  409. Another major difference is the "CONF:" line.  This configuration line
  410. is sent out from the INIT program, when the specific modem configuration
  411. is selected.  It is sent out at the maximum baud rate the modem runs at.
  412. For the USRobotics here, it sets the baud rate in the NRAM to 38400
  413. baud.  This is important, as this stored baud rate is used by the modem
  414. when an error-correcting connection is made.  Modems such as the
  415. Compucom (which does not have any NRAM) will not need a CONF: line.
  416.  
  417. A subtle, but important, change is that the SEPR: is now set to "/". The
  418. USRobotics result codes are sent out in strings such as "CONNECT
  419. 9600/ARQ/V32/LAPM/V42BIS".  The SEPR: "/" tells the BBS to split up that
  420. big result code into several "partial result codes", at the separator
  421. character.  Thus, the above result code will be split into "CONNECT
  422. 9600", "ARQ", "V32", "LAPM, "V42BIS", which is much easier for the BBS
  423. to handle.  Each one of the partial result codes is then processed
  424. independently, in order.  All of the partial result codes are processed
  425. before any connected/disconnected decision is made by the BBS.
  426.  
  427. Now, the "DEFL:" line here says that, by default, the state of the modem
  428. is (in order) running at 38400 bps, non-error-correcting, no data
  429. compression, not asymmetrical, and flow control IS needed.  When a
  430. result code is received, all the modem settings are assumed to be at the
  431. DEFL state.  The result configuration info for each partial result code
  432. modifies each field independently, starting from the DEFL state.
  433.  
  434. Each of the "CONNECT" partial result codes simply sets both the modem
  435. speed (MS=) and the com port speed (CS=) to the baud rate specified,
  436. same as for 2400 baud modems.
  437.  
  438. Suppose we got the result code "CONNECT 14400/ARQ/HST/HST/V42BIS".
  439.  
  440. We start out at the default:
  441.  
  442. Partial result code             modem settings after processing
  443.  
  444. At beginning, DEFL              MS=38400 CS=38400 EC=N DC=N AS=N FC=Y
  445. "CONNECT 14400"                 MS=14400 CS=14400 EC=N DC=N AS=N FC=Y
  446. "ARQ"                           MS=14400 CS=38400 EC=Y DC=N AS=N FC=Y
  447. "HST"                           MS=14400 CS=38400 EC=Y DC=N AS=Y FC=Y
  448. "HST"                           MS=14400 CS=38400 EC=Y DC=N AS=Y FC=Y
  449. "V42BIS"                        MS=14400 CS=38400 EC=Y DC=Y AS=Y FC=Y
  450.  
  451. Which means:
  452.  
  453. MS=14400        The user's throughput is 14400 bps
  454. CS=38400        The BBS should talk to the modem at 38400 bps.
  455.                 (Due to the &B2 setting)
  456. EC=Y            Error correction is active (LAPM/MNP2-4)
  457. DC=Y            Data compression is active (V.42bis/MNP5)
  458. AS=Y            Asymmetrical baud rates.  This is because, with the HST
  459.                 connection, it is only 14400 bps in one direction.  The
  460.                 other direction is only 450 bps.
  461. FC=Y            Flow control is still active.
  462.  
  463. The "CON" at the end of each of the "CONNECT" lines means that the user
  464. is connected.  Even though the "CON" is processed in the first partial
  465. result code, the remaining partial result codes are still processed
  466.  
  467. Note that, for the HST, V32, etc, partial result codes, the description
  468. of the partial result code is in single-quotes (vs double-quotes for the
  469. CONNECT descriptions).  If the description is in double-quotes, then any
  470. previous descriptions is OVERWRITTEN.  If the description is in
  471. single-quotes, then the description is APPENDED to any previous partial
  472. description.  For the result code above, the description would end up
  473. being "14400/HST/HST/V.42bis"
  474.  
  475. For the ARQ partial result code, there is no description, and so the
  476. description (so far) is unmodified by the "ARQ".
  477.  
  478. How do you make your own modem configuration file?  A lot of it will
  479. probably be the same as other configurations (ANSR, PICK, HANG, DIAL,
  480. the first few RESL), however you will certainly have to completely
  481. re-write the SETU and INIT strings.  You will also almost certainly have
  482. to modify the DEFL line, and the RESL lines for the connecting result
  483. codes.
  484.  
  485. There are also length limits on the strings:
  486.  
  487. file: 8 chars
  488. name: 80 chars
  489. note: 4096 chars TOTAL (for however many NOTE: lines you have)
  490. conf: 160 chars
  491. setu: 160 chars
  492. init: 160 chars
  493. ansr: 80 chars
  494. pick: 80 chars
  495. hang: 80 chars
  496. dial: 80 chars
  497. sepr: 9 chars
  498. result code from modem: 40 chars
  499. result code description: 30 chars
  500.  
  501. Also: the sepr: string may contain multiple chars.  It is not really a
  502. "string" as a "list of chars".  If you know C, this string is passed to
  503. strtok().
  504.  
  505. /****************************************************************************/
  506.  
  507. Auto-selection: WWIV maintains a database for automatic modem type
  508. detection in the MODEMS.MDM file.  The data comprise a sort of "state
  509. machine".  When trying to detect a certain type of high-speed modem, it
  510. starts out in state 1.  If/when it gets to state 0, then it has detected
  511. the modem type.  If it passes through the entire list without passing
  512. any of the rules, then it determines that it cannot determine the modem
  513. type.
  514.  
  515. The first column is the "start" state.  The second is the "end" state.
  516. If the current state is equal to the "start" state, then the string in
  517. the fourth column is sent to the modem.  If the response is equal to the
  518. string in the fifth column, then the state transition is made, and the
  519. current state is set to the "end" state, and the currently detected
  520. modem type is set to the string in the third column.
  521.  
  522. Note that the auto-selection data is used ONLY if the modem responds at
  523. 9600 baud or higher.
  524.  
  525. Also note that it is not important for you to put in auto-selection data
  526. to detect your modem type.  The auto-selection stuff is only a nicety,
  527. and you can always go into init section 5 and pick whichever modem data
  528. you want.
  529.  
  530.